Шаблоны баз данных
Шаблоны для модуля активности «Базы данных» позволяют контролировать визуальное оформление информации при просмотре списка, просмотре или редактировании записей в базе данных. Это соотносится с методом, используемым для слияния почты в текстовых процессорах, таких как Open Office Writer или Microsoft Word.
Использование тегов
Содержимое каждого поля, которое вы создаёте для своей базы данных, и некоторые специальные теги (перечислены ниже) могут быть вставлены в выходной шаблон с помощью тегов.
Поля имеют формат [[fieldname]]. Все остальные теги имеют формат ##sometag##.
Чтобы использовать теги в окне слева на странице, сначала нажмите, чтобы отключить редактор, затем поместите курсор в текстовую область нужного редактирования и нажмите на тег, который хотите вставить. Когда закончите, нажмите, чтобы сохранить шаблон. Кроме того, вы можете просто ввести соответствующее имя в нужных символах, например ##this## или [[this]], соответственно.
Теги, относящиеся к конкретным полям, требуют написания названия поля базы данных в двойных квадратных скобках. Например, все теги, относящиеся к полю с названием "myfield", будут использовать формат [[fieldname#TAGNAME]]. Доступные теги полей:
[[fieldname]]будет заменено значением поля. В случае шаблона «Добавить» оно будет заменено входным значением поля.[[fieldname#name]]будет заменено названием поля.[[fieldname#description]]будет заменено описанием поля.
Вот остальные теги, которые можно использовать внутри шаблонов:
##actionsmenu##создаёт выпадающее меню с доступными действиями пользователя в текущей записи базы данных. Это рекомендованный способ добавления опций в запись. Однако по причинам совместимости по-прежнему доступны отдельные теги действий:##edit##,##delete##,##approve##или##disapprove##.##more##создаёт ссылку на простой вид, который может содержать более подробную информацию.##moreurl##создаёт только URL для вышеуказанной ссылки, что полезно для создания собственных ссылок. Вы можете нажать на значок ссылки и ввести##moreurl##в поле URL или в представлении исходного кода ввести<a href="##moreurl##">[[fieldname]]</a>.##comments##создаёт ссылку на страницу просмотра/редактирования комментариев, текст ссылки — текущее количество комментариев (отображается только если комментарии включены).##user##создаёт ссылку на страницу пользователя, который отправил запись, текст ссылки — его имя.##timeadded####timemodified####userpicture##отображает изображение пользователя в просмотре списком.##approvalstatus##вставляется как встроенный CSS, обеспечивает выделение для неодобренных записей.##tags##отображает теги (включены по умолчанию в Управление тегами в Администрировании сайта).
Шаблон списка
Этот шаблон позволяет контролировать используемые поля и их расположение при одновременном просмотре нескольких записей (например, результаты поиска). Возможно, этот вид может предоставить обзор с более подробной информацией, доступной при нажатии на запись для доступа к простому виду записи.
См. Проектирование вида списка в активности базы данных Moodle для инструкций по созданию таблицы шаблона списка.
Шаблон списка также можно использовать для экспорта вашей базы данных в виде файла CSV.
Шаблон одиночной записи
Используется для отображения одной записи за раз и поэтому имеет больше места для отображения, может использовать, например, более крупные версии изображений или при необходимости предоставлять больше информации, чем показано в просмотре списком.
Шаблон расширенного поиска
Шаблон расширенного поиска предназначен для создания формы интерфейса, используемой в расширенном поиске.
Шаблон добавления
Этот шаблон создаёт форму интерфейса, используемую при добавлении или редактировании записей в базе данных.
Шаблон RSS
Позволяет контролировать содержимое RSS ленты для записей в базе данных.
Шаблон CSS
Если какой-либо из HTML в ваших других шаблонах требует CSS для визуального оформления, вы можете указать его здесь.
Шаблон JavaScript
Вы можете использовать JavaScript для управления отображением элементов в шаблонах списка, одиночной записи или добавления. По сути, вам нужно заключить часть, которую вы хотите изменить, в некоторый именованный HTML-элемент. Именование важно, так как оно позволяет идентифицировать элемент для манипуляции.
Допустим, например, у вас есть поле в базе данных, которое хранит имя человека, и при отображении имён в просмотре списком вы хотите подсчитать, сколько раз имя соответствует некоторым критериям, и отобразить результат.
Ваша база данных будет содержать поле, которое мы назовём "name". В вашем шаблоне списка вы сможете отобразить содержимое этого поля, используя конструкцию [[name]] в том месте, где вы хотите отобразить эту информацию. Например, в Повторяющейся записи в шаблоне списка у вас будет:
<table>
<tr>
<td>Name: [[name]]</td>
</tr>
<table>
Теперь вам нужно изменить эту запись, чтобы убедиться, что часть, которую вы хотите изменить, является именованным элементом:
<table>
<tr>
<td name="named">Name: [[name]]</td>
</tr>
<table>
В футере вашего просмотра списком может быть другой именованный элемент для отображения результата:
<div name="result"></div>
Ваш шаблон JavaScript теперь может выглядеть следующим образом:
var cnt = 0;
var re = /foo|Foo/;
function init(){
var namedElements = document.getElementsByName("named");
for (i=0; i < namedElements.length; i++) {
if(re.test(namedElements[i].innerHTML)) cnt++;
}
var namedResult = document.getElementsByName("result");
namedResult[0].innerHTML = cnt;
}
window.onload = init;
Это отобразит таблицу имён, как обычно в просмотре списком. Теперь внизу также будет отображаться количество имён, соответствующих foo или Foo.
Обратите внимание, что window.onload не обрабатывает никаких зависимостей от кода YUI, поэтому любые модули YUI, требуемые вашим init() кодом, могут не загрузиться, и ваш код не будет работать.
В этом случае вместо onload используйте:
YUI().use('node', 'other', 'dependencies', function(Y) {
// Ваш код здесь.
// Эта функция является замыканием, так что объект Y, который вы определяете в определении функции, принадлежит вам, и ничто другое на странице не должно быть в состоянии его нарушить.
});
Кнопка «Сбросить шаблоны»
При первом создании базы данных шаблоны будут предварительно заполнены соответствующим HTML. Если позже вы добавите поля, то можете нажать кнопку «Сбросить шаблоны», и она добавит HTML для новых полей аналогичным образом. Если вы в это время внесли изменения в какие-либо шаблоны, то ваши изменения будут потеряны. Рекомендуется окончательно определить поля базы данных перед изменением кода шаблона.